import { login ,userInfo,UserProfile} from "@/api/user";
import { getToken, setToken } from "@/utils/auth";
import {resetRouter} from '@/router'
export default {
  namespaced: true,
  state: () => {
    return {
      // 设置一个 token值    如果 有token值 就用token值 如果没有 就为空
      token: getToken() || "",
      //用户信息
      userInfo:{}
    };
  },
  mutations: {
    setUserInfo(state,newUserInfo) {
      state.userInfo = newUserInfo
    },


    // 定义 mutations 去修改 token的值
    setToken(state, newToken) {
      // 将 token 保存到 state 里面
      state.token = newToken;
      // token 持久化

      setToken(newToken);
    },
  },
  actions: {
    //data用户名密码
    async userLogin(context, data) {
      
      const res = await login(data)
      console.log(res.data)
      context.commit('setToken',res.data)
    },
    //获取用户信息
    async getUserProfile(context) {
      const res = await UserProfile()

      //获取用户的信息(传入id)
      const resInfo = userInfo(res.data.userId)
      console.log('resInfo',resInfo)

      const obj ={...res.data,...resInfo.data}
      //调用mutations保存到state
      context.commit('setUserInfo',obj)

      return res
    },
    //用户退出
    logout(context) {
      // 1. 移除vuex个人信息
      context.commit("setUserInfo", {});
      // 2. 移除token信息
      context.commit("setToken", "");

      //重置路由
      resetRouter();
    }
  },
  getters: {},
}
